from urllib.request import Request, urlopen	# 用于创建HTTP请求对象和发送请求
from urllib.parse import urlencode		# 用于将字典转换为URL编码字符串

# 一、模拟发送GET请求（包含User-Agent和响应数据打印）
# 创建Request对象，添加自定义请求头User-Agent（模拟浏览器）
req = Request('https://httpbin.org/get', headers={'User-Agent': 'Edge/134.0.3124.51'})
# 发送请求并获取响应对象
response = urlopen(req)
# 读取响应内容并解码为UTF-8字符串
html = response.read().decode('utf-8')
# 打印状态码和响应数据
print("Get请求发送：", response.status)
print("GET响应数据：\n", html)


# 二、模拟发送POST请求（包含响应头和响应体打印）
# 构造POST请求的表单数据，使用urlencode转换为URL编码格式
login_data = urlencode({
    "username": "test_user",
    "password": "123456"
}).encode('utf-8')  # 编码为字节流

# 创建POST请求对象，指定URL、数据和请求方法
req = Request(url='https://httpbin.org/post', data=login_data, method='POST')
# 发送请求并获取响应对象
response = urlopen(req)
# 打印状态码、响应头和响应体
print("POST送达：", response.status)
print("POST响应头：", response.getheaders())  # getheaders()返回元组列表
print(response.read().decode('utf-8'))